package com.zc.timedown.dto;

import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import java.time.LocalDate;
import java.time.LocalDateTime;

/**
 * ClassName:UserDto
 * Description:
 * DateTime: 2025/9/30 12:35
 * Author: zc
 * Version: 1.0
 */

@Data
@ApiModel(description = "用户管理请求参数")
public class UserDto {
    /**
     * 名称
     */
    @ApiModelProperty(value = "用户名称", example = "张三")
    private String name;

    /**
     * 昵称
     */
    @ApiModelProperty(value = "用户昵称", example = "小张")
    private String nickName;

    /**
     * 手机号
     */
    @ApiModelProperty(value = "手机号码", example = "13800138000")
    private String phone;

    /**
     * 头像
     */
    @ApiModelProperty(value = "用户头像URL", example = "https://example.com/avatar.jpg")
    private String avatar;

    /**
     * 出生日期
     */
    @ApiModelProperty(value = "出生日期", example = "1990-01-01", dataType = "java.util.Date")
    private LocalDate birthDate;

    /**
     * 期望寿命
     */
    @ApiModelProperty(value = "期望寿命", example = "80")
    private Integer expectedLifespan;

    /**
     * OpenID
     */
    @ApiModelProperty(value = "微信OpenID", example = "oH6QG5PjJF5Jc2k9s8V9YxZ1w7A0")
    private String openId;

    /**
     * 性别(0:男，1:女)
     */
    @ApiModelProperty(value = "性别 0:男 1:女", example = "0", allowableValues = "0,1")
    private Integer gender;

    /**
     * 城市
     */
    @ApiModelProperty(value = "所在城市", example = "北京")
    private String city;

    /**
     * 省份
     */
    @ApiModelProperty(value = "所在省份", example = "北京市")
    private String province;

    /**
     * 国家
     */
    @ApiModelProperty(value = "所在国家", example = "中国")
    private String country;

    /**
     * 用户状态：1-正常，0-禁用
     */
    @ApiModelProperty(value = "用户状态 1:正常 0:禁用", example = "1", allowableValues = "0,1")
    private Integer status;

    /**
     * 注册时间
     */
    @ApiModelProperty(value = "注册时间", example = "2025-01-0110:23:11")
    private LocalDateTime registerTime;

    /**
     * 最后登录时间
     */
    @ApiModelProperty(value = "最后登录时间", example = "2025-09-28 10:23:11")
    private LocalDateTime lastLoginTime;

    /**
     * 登录次数
     */
    @ApiModelProperty(value = "登录次数", example = "10")
    private Integer loginCount;

    /**
     * 当前连击数
     */
    @ApiModelProperty(value = "当前连击数", example = "5")
    private Integer currentStreak;

    /**
     * 最大连击数
     */
    @ApiModelProperty(value = "最大连击数", example = "10")
    private Integer maxStreak;

    /**
     * 是否开启每日提醒
     */
    @ApiModelProperty(value = "是否开启每日提醒 true:开启 false:关闭", example = "true")
    private Boolean dailyReminderEnabled;


}
